class Watcher{
    constructor(vm, key, cb) {
        this.vm = vm
        // data中的属性名称
        this.key = key
        // 回调函数负责更新视图
        this.cb = cb

        Dep.target = this
        // 触发get方法，在get方法中会调用addSub
        this.oldValue = vm[key]
        Dep.target = null
    }
    // 当数据发生变化的时候更新视图
    update() {
        console.log('update')
        const newValue = this.vm[this.key]
        if (newValue !== this.oldValue) {
            this.cb(newValue)
            this.oldValue = newValue
        }
    }
}